#ifndef FSM_SWITCH_H
#define FSM_SWITCH_H


#include "mi_tinyfsm.h"


class Switch : public MiTinyfsm {

public:
    Switch(const std::string& name) : MiTinyfsm(state_on), fsm_instance_name(name) {};

    void start() override;

    const std::string toggle = "toggle";

private:
    void state_on_entry();
    void state_on_exit();
    void state_off_entry();
    void state_off_exit();


    MiTinyfsm::State state_on;
    MiTinyfsm::State state_off;
    const std::string fsm_instance_name;
};

#endif